/*
 * Excepciones.h
 *
 *  Created on: 11/04/2010
 *      Author: administrador
 */

#ifndef EXCEPCIONES_H_
#define EXCEPCIONES_H_

#include <iostream>
#include <string.h>

using namespace std;

class OverflowException {

private:

	int idNodo;

public:

	OverflowException(){};
	OverflowException(int idNodo)
	{
		this -> idNodo = idNodo;
	}

	int getNodo()
	{
		return this -> idNodo;
	}

	void mostrarError()
	{
		cout << "El Nodo de id: " << this -> idNodo << " está en Overflow. Se debe reorganizar la estructura." << endl;
	}

};

class UnderflowException {

private:

	int idNodo;

public:

	UnderflowException(){};
	UnderflowException(int idNodo)
	{
		this -> idNodo = idNodo;
	}

	int getNodo()
	{
		return this -> idNodo;
	}

	void mostrarError()
	{
		cout << "El Nodo: " << this -> idNodo << " está en Underflow. Se debe reorganizar la estructura." << endl;
	}

};

class ElementoExistenteException {

private:

	int claveElemento;

public:

	ElementoExistenteException(){};
	ElementoExistenteException(int claveElemento)
	{
		this -> claveElemento = claveElemento;
	}

	int getElemento()
	{
		return this -> claveElemento;
	}

	void mostrarError()
	{
		cout << "El Elemento de clave: " << this -> claveElemento << " ya se encuentra dado de alta previamente." << endl;
	}

};

class ElementoInexistenteException {

private:

	int claveElemento;

public:

	ElementoInexistenteException(){};
	ElementoInexistenteException(int claveElemento)
	{
		this -> claveElemento = claveElemento;
	}

	int getElemento()
	{
		return this -> claveElemento;
	}

	void mostrarError()
	{
		cout << "El Elemento: " << this -> claveElemento << " no existe o no se ha dado de alta previamente." << endl;
	}

};

class NodoVacioException {

private:

	int idNodo;

public:

	NodoVacioException(){};
	NodoVacioException(int idNodo)
	{
		this -> idNodo = idNodo;
	}

	int getIdNodo()
	{
		return this -> idNodo;
	}

	void mostrarError()
	{
		cout << "El Nodo: " << this -> idNodo << " esta vacio." << endl;
	}

};

#endif /* EXCEPCIONES_H_ */
